Skip to content

Add grasp annotator#196

Merged
matafela merged 33 commits intomainfrom
cj/add-grasp-annotator
Apr 2, 2026
Merged

Add grasp annotator#196
matafela merged 33 commits intomainfrom
cj/add-grasp-annotator

Conversation

@matafela
Copy link
Copy Markdown
Collaborator

@matafela matafela commented Mar 23, 2026

Description

Add a complete antipodal grasp-annotation and pose-generation toolkit for parallel-jaw grippers (embodichain.toolkits.graspkit.pg_grasp), plus a dedicated CLI sub-command and documentation.

Core modules (new):

  • antipodal_generator.pyGraspGenerator with interactive Viser-based region annotation, antipodal sampling, pose construction, and collision-aware filtering.
  • antipodal_sampler.pyAntipodalSampler for ray-cast antipodal pair detection on mesh surfaces.
  • collision_checker.py — Batch convex-hull collision checking (Warp kernel).
  • gripper_collision_checker.py — Parallel-jaw gripper collision model and query.

CLI:

  • annotate-grasp sub-command registered in embodichain/__main__.py. Loads a mesh via trimesh, launches browser-based annotation UI, and caches antipodal point pairs.

Usage:

python -m embodichain annotate-grasp --mesh_path /path/to/object.ply

Other changes:

  • Tutorial script: scripts/tutorials/grasp/grasp_generator.py
  • Documentation: docs/source/features/toolkits/grasp_generator.rst
  • Unit test: tests/toolkits/test_batch_convex_collision.py
  • Utility: embodichain/utils/warp/collision/ for GPU-accelerated convex queries
  • Removed legacy antipodal.py and cone_sampler.py (replaced by the new modules above)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (non-breaking change which improves an existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

Screenshot from 2026-03-23 19-16-01

Checklist

  • I have run the black . command to format the code base.
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • Dependencies have been updated, if applicable.

🤖 Generated with Claude Code

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants